#ifndef __SCENE_H__
#define __SCENE_H__
#include <vector>
#include <mesh.h>
#include <memory>
#include <texture.h>
#include <light.h>
#include <vec3.h>
#include <framebuffer.h>

struct Model {
    Vec3f scale = Vec3f{1.0f, 1.0f, 1.0f};
    Vec3f rotate;
    Vec3f position;
    Mesh mesh;
    Texture texture;
};

struct Scene {
    void draw(Framebuffer& framebuffer, const Vec3f& cameraPos) const;
    std::string name;
    std::vector<Model> models;
    std::vector<std::shared_ptr<Light>> lights;
};

#endif